package link.jfire.disqueue;

public interface ProducerWaitStrategy
{
    
    /**
     * 追踪trackSequencers,等待cursor可用。当可用时返回当前追踪序号中的最小值
     * 
     * @param cursor
     * @param traceSequencers
     * @param bufferSize
     * @return
     */
    public long waitFor(long cursor, Sequencer[] trackSequencers, int bufferSize);
    
    /**
     * 唤醒所有在等待可用序号的线程。在不同的实现中该方法的实现不同，可能有些实现该方法是一个空方法
     */
    public void signalAllWait();
}
